/*
* $Id: Application.h 31 2010-02-17 16:55:56Z volok-aleksej@yandex.ru $
*
* Copyright 2008-2009 by Volokitin Alexey
* All rights reserved
*
*/
#ifndef _APPLICATION_H_
#define _APPLICATION_H_

class CApplication : public CWinApp, public IApplication
{
	IDatabaseManager* m_pDatabaseManager;
	ILanguageManager* m_pLanguageManager;
	IVisualManager* m_pVisualManager;
	ISettingsManager* m_pSettingsManager;
	IEventManager* m_pEventManager;
	std::vector<IComponent*> m_aComponents;
	std::tstring m_strClassName;
public:
	CApplication();
	~CApplication();
	virtual BOOL InitInstance();
public:
	virtual IDatabaseManager* GetDatabaseManager();
	virtual ILanguageManager* GetLanguageManager();
	virtual ISettingsManager* GetSettingsManager();
	virtual IVisualManager* GetVisualManager();
	virtual IEventManager* GetEventManager();
	virtual std::vector<IComponent*> GetComponents();
	virtual void Free();
};

#endif/*_APPLICATION_H_*/